package gob.osinerg.emergencia.action;

import gob.osinerg.emergencia.bean.AccidenteGraveFinal;
import gob.osinerg.emergencia.bean.Dominio;
import gob.osinerg.emergencia.bean.Formulario;
import gob.osinerg.emergencia.bean.FormularioEmergencia;
import gob.osinerg.emergencia.bean.FormularioEmergenciaUnmay;
import gob.osinerg.emergencia.bean.UsuarioBean;
import gob.osinerg.emergencia.form.FormularioEmergenciaForm;
import gob.osinerg.emergencia.form.FormularioEmergenciaUnmayForm;
import gob.osinerg.emergencia.service.AccidenteGraveFinalService;
import gob.osinerg.emergencia.service.DominioService;
import gob.osinerg.emergencia.service.FormularioEmergenciaUnmayService;
import gob.osinerg.emergencia.service.GenericService;
import gob.osinerg.emergencia.util.Converter;
import gob.osinerg.emergencia.util.Report;

import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.util.ResourceUtils;


public class FormularioEmergenciaUnmayAction extends GenericAction{
	
	private Log log = LogFactory.getLog(FormularioEmergenciaUnmayAction.class);
	private FormularioEmergenciaUnmayService service;
	private AccidenteGraveFinalService servicioAccidenteGraveFinal;
	private DominioService dominioService;
	private GenericService genericService;
	
	public ActionForward inicio(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response) throws java.lang.Exception {
		
		
		System.out.println("INICIO FormularioEmergenciaAction");
		
		HttpSession session = request.getSession();
		
		FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
		FormularioEmergenciaUnmay bean = new FormularioEmergenciaUnmay();
		bean.setFormulario(new Formulario());
		f.setBean(bean);
		f.setListTipoEmergencia(new ArrayList());
		f.setListTipoInforme(dominioService.selectByDominio("EMERG_TIPO_FORM"));
		f.setFchaEmrgncia("");
		f.setLista(new ArrayList());
		f.setListaRespuestaMasivo(new ArrayList());

		session.setAttribute("TipoEmergencia", ListToMap(dominioService.selectByDominio("EMERG_TIPO")));
		session.setAttribute("TipInforme", ListToMap(f.getListTipoInforme()));
		return actionMapping.findForward("inicio");
	}
	
	public ActionForward buscar(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response) throws java.lang.Exception {
		
		HttpSession session = request.getSession();
		UsuarioBean usuario = (UsuarioBean)session.getAttribute("UsuarioBean");
		String fecha = (String) request.getAttribute("fechaIngresoFinal");
		System.out.println("fecha: "+fecha);
		FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
		
		FormularioEmergenciaUnmay bean = (FormularioEmergenciaUnmay)f.getBean();
		System.out.println("fecha BEAN: "+f.getFchaEmrgncia());
		if(!StringUtils.isEmpty(f.getFchaEmrgncia())){
			bean.setFchaEmrgncia(Converter.stringToDate(f.getFchaEmrgncia(),"dd/MM/yyyy"));
		}
		bean.setUsrioCrdor(usuario.getCodigoLogin());
		f.setLista(service.findEmergencia(bean));
		
		
		return actionMapping.findForward("inicio");
	}
	
	
	public ActionForward nuevo(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response) throws java.lang.Exception {
		HttpSession session = request.getSession();
    	//ActividadBean actividad = (ActividadBean)session.getAttribute("ActividadBean");
    	//Long idUniFis =  service.getUniFisIdParaUsuario(actividad.getCodigo());
		FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
		FormularioEmergenciaUnmay bean = new FormularioEmergenciaUnmay();
		bean.setFormulario(new Formulario());
		f.setBean(bean);
		f.setListTipoEmergencia(new ArrayList());
		f.setListTipoInforme(dominioService.selectByDominio("EMERG_TIPO_FORM"));
		return actionMapping.findForward("nuevo");
	}
	
	 public ActionForward cargarCombo(
	            ActionMapping actionMapping,
	            ActionForm  actionForm,
	            HttpServletRequest request,
	            HttpServletResponse response)throws java.lang.Exception  {
		    log.debug("INICIO CARGAR COMBO");
	        cargarCombo(request,(FormularioEmergenciaUnmayForm)actionForm);
	        return actionMapping.findForward("nuevo");
	    }
	 
	 private void cargarCombo(HttpServletRequest request,FormularioEmergenciaUnmayForm form)
	    {
	     log.debug("INICIO VOID CARGAR COMBO");
		 try{
			 FormularioEmergenciaUnmay bean=((FormularioEmergenciaUnmay)form.getBean());
		     String tpo_inf=bean.getFormulario().getTpoInfrme();
		     log.debug("TIPO INF: "+ tpo_inf);
	         List tiposEm = service.getBusquedaTipoEmergencia(tpo_inf);
	         for(int i=0; i<tiposEm.size(); i++){
	        	 Dominio s  = (Dominio)tiposEm.get(i);
	        	 if(s.getDescripcion().length()>110)  {
	        		 String t = new String(s.getDescripcion().substring(0, 110-1));
	        		 s.setDescripcion(t);
	        		 tiposEm.set(i, s);
	        	 }
	         }
	         form.setListTipoEmergencia(tiposEm);
		 }catch (Exception e) {
			log.error(e);
		 }
	 } 
	 
	 public void abrirFormulario(
	            ActionMapping actionMapping,
	            ActionForm  actionForm,
	            HttpServletRequest request,
	            HttpServletResponse response)throws java.lang.Exception  {
		 
		    log.debug("INICIO ABRIR FORMULARIO");
		    FormularioEmergenciaUnmayForm form=(FormularioEmergenciaUnmayForm)actionForm;
		    FormularioEmergenciaUnmay bean=((FormularioEmergenciaUnmay)form.getBean());
		    String tpo_inf=bean.getFormulario().getTpoInfrme();
		    String tpo_emrg=bean.getTpoEmrgncia();
		    String action="";
		    if(tpo_inf.compareTo("PRE")==0){
		    	if(tpo_emrg.compareTo("AGF")==0)
		    		action="./accidenteGravePreliminar.do?method=inicio";
		    	if(tpo_emrg.compareTo("SI")==0)
		    		action="./siniestroPreliminar.do?method=inicio";
		    	if(tpo_emrg.compareTo("EOP")==0)
		    		action="./emergenciaOperativaPreliminar.do?method=inicio";
		    }
		    if(tpo_inf.compareTo("FIN")==0){
		    	if(tpo_emrg.compareTo("AGF")==0)
		    		action="./accidenteGraveFinal.do?method=inicio";
		    	if(tpo_emrg.compareTo("SI")==0)
		    		action="./siniestroFinal.do?method=inicio";
		    	if(tpo_emrg.compareTo("EOP")==0)
		    		action="./emergenciaOperativaFinal.do?method=preinicio";
		    }
		    if(tpo_inf.compareTo("REP")==0){
		    	if(tpo_emrg.compareTo("ALV")==0)
		    		action="./accidenteLeve.do?method=inicio";
		    	if(tpo_emrg.compareTo("IDP")==0)
		    		action="./incidente.do?method=inicio";
		    	if(tpo_emrg.compareTo("ACT")==0)
		    		action="./accidenteTrabajo.do?method=inicio";
		    	if(tpo_emrg.compareTo("EPR")==0)
		    		action="./enfermedadProfesional.do?method=inicio";
		    	if(tpo_emrg.compareTo("EEP")==0)
		    		action="./estadisticaEnfermedad.do?method=inicio";
		    	if(tpo_emrg.compareTo("EEM")==0)
		    		action="./emergencia.do?method=inicio";
		    }
		    System.out.println("Action: "+action);
		    response.sendRedirect(action);
	    }
	 
	 public void cargar(ActionMapping actionMapping,
	            ActionForm actionForm,
	            HttpServletRequest request,
	            HttpServletResponse response) throws java.lang.Exception {
			HttpSession session = request.getSession();
			String index =request.getParameter("cargarPreFinal"); 
			FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
			FormularioEmergenciaUnmay formuEmrg = (FormularioEmergenciaUnmay)f.getLista().get(Integer.parseInt(index));
			Long id=formuEmrg.getId();
			String action="";
			Long formulario=formuEmrg.getFormulario().getId();
			if(formulario==4){
				session.setAttribute("idAccidenteGraveFinal", id);
				action="./accidenteGraveFinal.do?method=cargar";
		 	}else if(formulario==5){
		 		session.setAttribute("idSiniestroFinal", id);
		 		action="./siniestroFinal.do?method=cargar";
		 	}else if(formulario==6){
		 		session.setAttribute("idEmergenciaOperativaFinal", id);
		 		action="./emergenciaOperativaFinal.do?method=cargar";
		 	}
			
			System.out.println("Action: "+action);
		    response.sendRedirect(action);
		}
	
	 public ActionForward consultar(ActionMapping actionMapping,
	            ActionForm actionForm,
	            HttpServletRequest request,
	            HttpServletResponse response) throws java.lang.Exception {
			
			FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
			HttpSession session = request.getSession();
	    	String index =request.getParameter("sel"); //"51";
	    	ArrayList lista=new ArrayList();
	    	if(StringUtils.isEmpty(index)){
	    		index = (String)request.getAttribute("sel");
	    	}

			if(!StringUtils.isEmpty(index)){
				FormularioEmergenciaUnmay formuEmrg = (FormularioEmergenciaUnmay)f.getLista().get(Integer.parseInt(index));
	    		System.out.println("id: "+formuEmrg.getNmroEmrgncia()+" "+formuEmrg.getId()+
	    				" "+formuEmrg.getFormulario().getId());
	    		int tipo_inf=Integer.parseInt(formuEmrg.getFormulario().getId()+"");
	    		System.out.println("tipo_inf: "+tipo_inf);
	    		int id=0;
	    		Map parameters = new HashMap();
	    		File archivo=null;
	    		Report report=null;
	    		switch(tipo_inf){
	    		case 1:
		    		id=service.getFormato("sfh_frmto_n1",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/AccidenteGravePreliminar.jrxml");
	    			break;

				case 2:
		    		id=service.getFormato("sfh_frmto_n2",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/SiniestroPreliminar.jrxml");
	    			break;

	            case 3:
		    		id=service.getFormato("sfh_frmto_n3",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", id+"");
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEmergenciaOperativaPreliminar.jrxml");
	    			break;

				case 4:
		    		id=service.getFormato("sfh_frmto_n4",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
		    		archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/AccidenteGraveFinal.jrxml");
		    		parameters.put("SUBREPORT_DIR", archivo.getPath().substring(0,archivo.getPath().lastIndexOf(archivo.separator))+ archivo.separator);
	    			break;
    		
				case 5:
		    		id=service.getFormato("sfh_frmto_n5",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
		    		archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/SiniestroFinal.jrxml");
		    		parameters.put("SUBREPORT_DIR", archivo.getPath().substring(0,archivo.getPath().lastIndexOf(archivo.separator))+ archivo.separator);
	    			break;
			
	            case 6:
		    		id=service.getFormato("sfh_frmto_n6",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", id+"");
		    		archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEmergenciaOperativaFinal.jrxml");
		    		parameters.put("SUBREPORT_DIR", archivo.getPath().substring(0,archivo.getPath().lastIndexOf(archivo.separator))+ archivo.separator);
	    			break;
	            case 7:
		    		lista=service.getReporte("sfh_accdnte_lve",Integer.parseInt(formuEmrg.getId()+""),1);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("MES", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteAccidenteLeve.jrxml");
	    			break;
	            case 8:
		    		lista=service.getReporte("sfh_incdnte",Integer.parseInt(formuEmrg.getId()+""),1);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("MES", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteIncidente.jrxml");
	    			break;
	            case 9:
	            	id=service.getFormato("sfh_accdnt_trbjo",Integer.parseInt(formuEmrg.getId()+""));
	            	lista=service.getReporte("sfh_accdnt_trbjo",Integer.parseInt(formuEmrg.getId()+""),2);
		    		parameters.put("ID", id+"");
		    		parameters.put("REGISTRO_DGH", lista.get(0));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteAccidenteTrabajo.jrxml");
	    			break;
	            case 10:
		    		lista=service.getReporte("sfh_enfrmdad_prfsnal",Integer.parseInt(formuEmrg.getId()+""),3);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("SEMESTRE", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEnfermedadProfesional.jrxml");
	    			break;
	            case 11:
	            	id=service.getFormato("sfh_estdstcas_ee",Integer.parseInt(formuEmrg.getId()+""));
	            	lista=service.getReporte("sfh_estdstcas_ee",Integer.parseInt(formuEmrg.getId()+""),4);
		    		parameters.put("ID", id+"");
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEstadisticasEE.jrxml");
	    			break;
	            case 12:
	            	lista=service.getReporte("sfh_emrgncias",Integer.parseInt(formuEmrg.getId()+""),5);
		    		parameters.put("FORM_ID", formuEmrg.getId()+"");
		            parameters.put("REGISTRO_DGH", lista.get(1));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEstadisticaEmergencia.jrxml");
	    			break;
    		
	    		}
	    		System.out.println("IDDD: "+id);
	            parameters.put("IMAGE_LOGO", request.getRequestURL().substring(0, request.getRequestURL().lastIndexOf("/"))+"/images/logo_home.jpg");
	            System.out.println("IMAGEN: "+request.getRequestURL().substring(0, request.getRequestURL().lastIndexOf("/"))+"/images/logo_home.jpg");
	            report = new Report();
	    		report.setJasperReport(archivo);
	    		report.setParameter(parameters);
	    		report.setConnection(genericService.getConnection());
    			report.PDF(request, response); 
	    		
			 }

			return null;
		}
	 
	 public ActionForward imprimir(ActionMapping actionMapping,
	            ActionForm actionForm,
	            HttpServletRequest request,
	            HttpServletResponse response) throws java.lang.Exception {
		 ArrayList lista=new ArrayList();
			FormularioEmergenciaUnmayForm f = (FormularioEmergenciaUnmayForm)actionForm;
			HttpSession session = request.getSession();
	    	String index =request.getParameter("imprimir"); 
	    	if(StringUtils.isEmpty(index)){
	    		index = (String)request.getAttribute("imprimir");
	    	}

			if(!StringUtils.isEmpty(index)){
				FormularioEmergenciaUnmay formuEmrg = (FormularioEmergenciaUnmay)f.getLista().get(Integer.parseInt(index));
	    		System.out.println("id: "+formuEmrg.getNmroEmrgncia()+" "+formuEmrg.getId()+
	    				" "+formuEmrg.getFormulario().getId());
	    		int tipo_inf=Integer.parseInt(formuEmrg.getFormulario().getId()+"");
	    		System.out.println("tipo_inf: "+tipo_inf);
	    		int id=0;
	    		Map parameters = new HashMap();
	    		File archivo=null;
	    		Report report=null;
	    		String subreportDir =null;
	    		switch(tipo_inf){
	    		case 1:
		    		id=service.getFormato("sfh_frmto_n1",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/AccidenteGravePreliminar.jrxml");
	    			break;

				case 2:
		    		id=service.getFormato("sfh_frmto_n2",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/SiniestroPreliminar.jrxml");
	    			subreportDir = archivo.getPath().substring(0,archivo.getPath().lastIndexOf(File.separator))+File.separator;
		            parameters.put("SUBREPORT_DIR",subreportDir);
	    			break;

	            case 3:
		    		id=service.getFormato("sfh_frmto_n3",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", id+"");
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEmergenciaOperativaPreliminar.jrxml");
	    			break;

				case 4:
		    		id=service.getFormato("sfh_frmto_n4",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/AccidenteGraveFinal.jrxml");
	    			subreportDir = archivo.getPath().substring(0,archivo.getPath().lastIndexOf(File.separator))+File.separator;
	    			/*
	    			AccidenteGraveFinal accGraFi = servicioAccidenteGraveFinal.findAccidenteGraveFinal(new Long(id));
	    			String numTestigos = "0";
	    			if(accGraFi!=null){
	    				numTestigos = new String(new Long(accGraFi.getListaTestigosAccidente().size()).toString());
	    			}
		            parameters.put("TOTAL_TESTIGOS",numTestigos);
		            */
	    			parameters.put("SUBREPORT_DIR",subreportDir);
	    			break;
 		
				case 5:
		    		id=service.getFormato("sfh_frmto_n5",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", new Long(id));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/SiniestroFinal.jrxml");
	    			subreportDir = archivo.getPath().substring(0,archivo.getPath().lastIndexOf(File.separator))+File.separator;
	                parameters.put("SUBREPORT_DIR",subreportDir);
	    			break;
			
	            case 6:
		    		id=service.getFormato("sfh_frmto_n6",Integer.parseInt(formuEmrg.getId()+""));
		    		parameters.put("ID", id+"");
		    		archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEmergenciaOperativaFinal.jrxml");
		    		parameters.put("SUBREPORT_DIR", archivo.getPath().substring(0,archivo.getPath().lastIndexOf(archivo.separator))+ archivo.separator);
		    		break;
	            case 7:
		    		lista=service.getReporte("sfh_accdnte_lve",Integer.parseInt(formuEmrg.getId()+""),1);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("MES", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteAccidenteLeve.jrxml");
	    			break;
	            case 8:
		    		lista=service.getReporte("sfh_incdnte",Integer.parseInt(formuEmrg.getId()+""),1);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("MES", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteIncidente.jrxml");
	    			break;
	            case 9:
	            	id=service.getFormato("sfh_accdnt_trbjo",Integer.parseInt(formuEmrg.getId()+""));
	            	lista=service.getReporte("sfh_accdnt_trbjo",Integer.parseInt(formuEmrg.getId()+""),2);
		    		parameters.put("ID", id+"");
		    		parameters.put("REGISTRO_DGH", lista.get(0));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteAccidenteTrabajo.jrxml");
	    			break;
	            case 10:
		    		lista=service.getReporte("sfh_enfrmdad_prfsnal",Integer.parseInt(formuEmrg.getId()+""),3);
		    		parameters.put("UNIOPE_ID", lista.get(0));
		            parameters.put("ANIO", lista.get(1));
		            parameters.put("SEMESTRE", lista.get(2));
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEnfermedadProfesional.jrxml");
	    			break;
	            case 11:
	            	id=service.getFormato("sfh_estdstcas_ee",Integer.parseInt(formuEmrg.getId()+""));
	            	lista=service.getReporte("sfh_estdstcas_ee",Integer.parseInt(formuEmrg.getId()+""),4);
		    		parameters.put("ID", id+"");
		            parameters.put("REGISTRO_DGH", lista.get(3));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEstadisticasEE.jrxml");
	    			break;
	            case 12:
		    		lista=service.getReporte("sfh_emrgncias",Integer.parseInt(formuEmrg.getId()+""),5);
		    		parameters.put("FORM_ID", formuEmrg.getId()+"");
		            parameters.put("REGISTRO_DGH", lista.get(1));
	    			archivo = ResourceUtils.getFile("classpath:gob/osinerg/emergencia/resource/jrxml/ReporteEstadisticaEmergencia.jrxml");
	    			break;
	    		}
	    		
	    		System.out.println("ID: "+id);
	            parameters.put("IMAGE_LOGO", request.getRequestURL().substring(0, request.getRequestURL().lastIndexOf("/"))+"/images/logo_home.jpg");
	    		report = new Report();
	    		report.setJasperReport(archivo);
	    		report.setParameter(parameters);
	    		report.setConnection(genericService.getConnection());
	    		report.PDF(request, response); 
	    		
			 }

			return null;
		}
	 
	private Map ListToMap(List lista) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{
    	Map mapa = new HashMap();
    	
    	for (int i=0;i<lista.size();i++){
    		Object obj = lista.get(i);
    		mapa.put(BeanUtils.getProperty(obj, "id"), BeanUtils.getProperty(obj, "descripcion"));
    		
    	}
    	
    	return mapa;
    }

	public void setService(FormularioEmergenciaUnmayService service) {
		this.service = service;
	}

	public void setDominioService(DominioService dominioService) {
		this.dominioService = dominioService;
	}

	public void setGenericService(GenericService genericService) {
		this.genericService = genericService;
	}
	
	public void setServicioAccidenteGraveFinal(
			AccidenteGraveFinalService servicioAccidenteGraveFinal) {
		this.servicioAccidenteGraveFinal = servicioAccidenteGraveFinal;
	}
}
